/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package es.us.gestortareas.bean;

import es.us.gestortareas.entity.Usuario;
import es.us.gestortareas.entity.UsuarioTarea;
import java.sql.ResultSet;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

/**
 *
 * @author master
 */
@Stateless
public class UsuarioTareaFacade extends AbstractFacade<UsuarioTarea> {
    @PersistenceContext(unitName = "Proyecto-ejbPU")
    private EntityManager em;

    @Override
    protected EntityManager getEntityManager() {
        return em;
    }

    public UsuarioTareaFacade() {
        super(UsuarioTarea.class);
    }

    public Usuario consultarId(int id) {
        
        Query q= em.createNamedQuery("Usuario.findById");
        q.setParameter("id",id);
        
        return (Usuario) q.getSingleResult();
        
        
    }
    
    // M.consulta por usuario y password, el profe lo hace devolviendo un usuario
    
    public boolean ConsultarLogin(String nombre, String password) {
        Query q= em.createNamedQuery("Usuario.CompruebaLogin");
        q.setParameter("nombre",nombre);
        q.setParameter("password",password);
        boolean aux=false;
        
        //una lista que recoge el resultado...
        //List lista=q();
        //si la lista es mayor que uno
        //if (lista mayor 1)
        { aux=true;
        }
        return aux;
    }
    // M.consulta por estado:activo
    
    public Usuario consultarEstadoUsuario(int id) {
        
        Query q= em.createNamedQuery("Usuario.findById");
        q.setParameter("id",id);
        //Usuario us= (Usuario)q.Result;
        q.getSingleResult();
        
        //que devuelva el estado del usuario
        return (Usuario) q.getSingleResult();
        
        
    }
    
    // M.update de los datos
    
     public Usuario actualizarDatos (Usuario usuario) {
        
        
       return update(usuario);
    }
    
     // M.insertar nuevo usuario_ version profe
     public Usuario update (Usuario usuario) {
        
       
       return em.merge(usuario);
    }
    
    // M.insertar nuevo usuario
     
     /*public Usuario agregaUsuario(String nombre, String password){
         //agregaremos un nuevo usuario con estado 1, activo.
         
         return null;
     }*/
    
    
    // M.darse de baja si es usuario 
    public Usuario bajaUsuario(Usuario usuario){
        // ConsultarLogin si es true...
        
        usuario.setEstado(0);
        
        return update(usuario);
        
        // se actualiza el campo estado. se pone 0
        
        
     }

 
    
    
    
   
   

    
    
    
    
}
